home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / The Hacks! / mhTV ƒ / TVSource / SourceThatMatters / General / ComponentHelp.h next >
Text File  |  1996-12-24  |  3KB  |  62 lines

  1. //Macros to convert from *Pascal* parameter block to parameter list.
  2.  
  3. #define SIZEOF(tpe) ( sizeof(tpe)%2==1 ? sizeof(tpe)+1 : sizeof(tpe) )
  4. #define CMPARG(t,o) (*((t*)(((char*)(paramsPtr->params))+(o))))
  5. #define CMP0() cmpGlobalParm
  6. #define CMP1(t1) cmpGlobalParm,\
  7.         CMPARG(t1,0)
  8. #define CMP2(t1,t2) cmpGlobalParm,\
  9.         CMPARG(t1,SIZEOF(t2)),\
  10.         CMPARG(t2,0)
  11. #define CMP3(t1,t2,t3) cmpGlobalParm,\
  12.         CMPARG(t1,SIZEOF(t2)+SIZEOF(t3)),\
  13.         CMPARG(t2,SIZEOF(t3)),\
  14.         CMPARG(t3,0)
  15. #define CMP4(t1,t2,t3,t4) cmpGlobalParm,\
  16.         CMPARG(t1,SIZEOF(t2)+SIZEOF(t3)+SIZEOF(t4)),\
  17.         CMPARG(t2,SIZEOF(t3)+SIZEOF(t4)),\
  18.         CMPARG(t3,SIZEOF(t4)),\
  19.         CMPARG(t4,0)
  20. #define CMP5(t1,t2,t3,t4,t5) cmpGlobalParm,\
  21.         CMPARG(t1,SIZEOF(t2)+SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)),\
  22.         CMPARG(t2,SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)),\
  23.         CMPARG(t3,SIZEOF(t4)+SIZEOF(t5)),\
  24.         CMPARG(t4,SIZEOF(t5)),\
  25.         CMPARG(t5,0)
  26. #define CMP6(t1,t2,t3,t4,t5,t6) cmpGlobalParm,\
  27.         CMPARG(t1,SIZEOF(t2)+SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)),\
  28.         CMPARG(t2,SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)),\
  29.         CMPARG(t3,SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)),\
  30.         CMPARG(t4,SIZEOF(t5)+SIZEOF(t6)),\
  31.         CMPARG(t5,SIZEOF(t6)),\
  32.         CMPARG(t6,0)
  33. #define CMP7(t1,t2,t3,t4,t5,t6,t7) cmpGlobalParm,\
  34.         CMPARG(t1,SIZEOF(t2)+SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)),\
  35.         CMPARG(t2,SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)),\
  36.         CMPARG(t3,SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)),\
  37.         CMPARG(t4,SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)),\
  38.         CMPARG(t5,SIZEOF(t6)+SIZEOF(t7)),\
  39.         CMPARG(t6,SIZEOF(t7)),\
  40.         CMPARG(t7,0)
  41. #define CMP8(t1,t2,t3,t4,t5,t6,t7,t8) cmpGlobalParm,\
  42.         CMPARG(t1,SIZEOF(t2)+SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)),\
  43.         CMPARG(t2,SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)),\
  44.         CMPARG(t3,SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)),\
  45.         CMPARG(t4,SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)),\
  46.         CMPARG(t5,SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)),\
  47.         CMPARG(t6,SIZEOF(t7)+SIZEOF(t8)),\
  48.         CMPARG(t7,SIZEOF(t8)),\
  49.         CMPARG(t8,0)
  50. #define CMP9(t1,t2,t3,t4,t5,t6,t7,t8,t9) cmpGlobalParm,\
  51.         CMPARG(t1,SIZEOF(t2)+SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)+SIZEOF(t9)),\
  52.         CMPARG(t2,SIZEOF(t3)+SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)+SIZEOF(t9)),\
  53.         CMPARG(t3,SIZEOF(t4)+SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)+SIZEOF(t9)),\
  54.         CMPARG(t4,SIZEOF(t5)+SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)+SIZEOF(t9)),\
  55.         CMPARG(t5,SIZEOF(t6)+SIZEOF(t7)+SIZEOF(t8)+SIZEOF(t9)),\
  56.         CMPARG(t6,SIZEOF(t7)+SIZEOF(t8)+SIZEOF(t9)),\
  57.         CMPARG(t7,SIZEOF(t8)+SIZEOF(t9)),\
  58.         CMPARG(t8,SIZEOF(t9)),\
  59.         CMPARG(t9,0)
  60.  
  61. ///=============================================================================
  62.